package com.base.dynamicprograming;

/**
 * @ClassName: Tribonacci
 * @Description: 1137. 第 N 个泰波那契数
 * @author: li
 * @Date: 2021/8/20 11:08 上午
 */
public class Tribonacci {
    public int tribonacci(int n){
        /**
         * 跟斐波拉切数一样的道理 。
         */

        if (n == 0){
            return 0;
        }
        if (n<=2&&n>0){
            return 1;
        }


        int p = 0,q = 1,r = 1;
        for (int i = 3; i < n + 1; i++) {
            // 只需要额外开辟 三个空间即可，不需要dp表
            int m = 0;
            m = p+q+r;
            p = q;
            q = r;
            r = m;
        }

        return r;

    }
}
